package com.liuyu.common.framework.insurance.picc.gd.vo.common;


import com.liuyu.common.framework.insurance.picc.gd.vo.request.insured.common.*;
import com.thoughtworks.xstream.annotations.XStreamAlias;
import com.thoughtworks.xstream.annotations.XStreamImplicit;
import lombok.Data;

import java.util.List;

/**
 * @author LiuYu
 * @Project:power-parent
 * @Title:${TITLE}
 * @Description:${todo}
 * @date 2017/9/5 000511:51
 * @Copyright:liuyu
 * @version:V1.0
 */
@Data
public class PiccGdInsuredBody<T> {
    private PiccGdBusinessUnitInfo businessUnitInfo;
    private PiccGdProductInfo productInfo;
    private PiccGdPolicyInfo policyInfo;
    private PiccGdPersonInfo applicantInfo;
    private PiccGdPersonInfo insuredInfo;
    private List<PiccGdPersonInfo> insuredInfos;
    /**
     * 出单想关信息
     */
    private PiccGdInternalInfo internalInfo;

    /**
     *受益人信息
     */
    private PiccGdStakeHolderInfo stakeHolderInfo;

    /**
     *第二受益人
     */
    private PiccGdStakeHolderInfo secondStakeHolderInfo;


    /**
     *    电子发票
     */
    @XStreamAlias("dzfpRequiredInfo")
    private PiccGdInvoice invoice;

    private boolean isSuccess;
    private Exception e;

    /**
     *标的联系人信息
     */
    private List<PiccGdNameInfo> nameInfos;


    @XStreamAlias("itemKindLimitList")
    private List<PiccGdItemKindLimitInfo> itemKindLimitInfos;

    /**
     *使用list 并且使用 @XStreamImplicit 忽略data 标签，使用下级标签。
     */
    @XStreamImplicit
    private List<T> extendData;


    private List<T> extendDataName;

    @XStreamAlias("extraRequiredInfo")
    private PiccGdExtra piccGdExtra;
}
